#ifndef _TAN_FUNCOBJECT_H_
#define _TAN_FUNCOBJECT_H_

#include "tanobject.h"
#include "tan_list.h"
#include "tan_code_snippet.h"

typedef struct tan_function_object
{
	TanVar var_base;
	TanObject* func_name;
	TANLIST(TanObject*[TanStringObject]) args;
	TANLIST(TanCode*) codes;
}TanFuncObject;

//typedef struct tan_function_object
//{
//	TanVar var_base;
//	TanObject* func_name;
//	TanObject* arg_names;
//	TanObject* classprt;
//	TanObject* codes;
//	TanObject* temp_vars;
//	TanObject* local_vars;
//} TanFuncObject;

TAN_INTERFACE_FUNC(TanObject*) Tan_Function(const TanObject* func_name, TANLIST(TanObject*) args, TANLIST(TanCode*) codes);
// TAN_INTERFACE_FUNC(void) Tan_Function_setcode(TanObject* func_ob, const TAN_INT8* code, const TAN_INT64 codeline);
//void find_if(TanObject* func_ob, const TAN_INT8* code, const TAN_INT64 codeline);
#define Tan_Func_cast(ob) ((TanFuncObject*)ob)

#endif
